package com.nbcio.cd.domain.bo;

import com.nbcio.cd.domain.CdFile;
import com.nbcio.common.core.validate.AddGroup;
import com.nbcio.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

/**
 * 云网盘文件业务对象 cd_file
 *
 * @author nbacheng
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CdFileBo extends CdFile {

    /**
     * 文件ID
     */
    @NotNull(message = "文件ID不能为空", groups = { EditGroup.class })
    private Long fileId;

    /**
     * 文件名称
     */
    @NotBlank(message = "文件名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileName;

    /**
     * 所属文件夹ID
     */
    @NotNull(message = "所属文件夹ID不能为空", groups = { AddGroup.class })
    private Long folderId;

    /**
     * 文件大小（格式化显示）
     */
    private String fileSizeFormatted;

    /**
     * 文件URL
     */
    private String fileUrl;

    /**
     * 预览URL
     */
    private String previewUrl;

    /**
     * 是否可预览
     */
    private Boolean canPreview;

    /**
     * 是否可下载
     */
    private Boolean canDownload;
}
